-- @Author: 作者QQ381990860
-- @Date:   2022-06-28 16:37:57
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-14 03:02:23
-- @Author: 作者QQ381990860
-- @Date:   2022-06-28 16:37:57
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-14 02:53:56
-- @Author: 作者QQ381990860
-- @Date:   2022-06-28 16:37:57
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-14 02:52:50

function 任务控制类:领取降妖伏魔任务(id)------------------------------完成--------------------
 if 取队伍符合等级(id,40)==false then
    广播队伍消息(id,7,"#Y/队伍平均等级达到40级才可领取此任务")
 else
    self.检查通过=""
    self.检查次数=101
    if 玩家数据[id].队伍==0 then
      if 角色处理类:GetTaskID(玩家数据[id],"降妖伏魔")~=0 then
      self.检查通过=玩家数据[id].角色.名称
      end
	  if  活动数据.降妖伏魔 ==nil then
	  活动数据.降妖伏魔 = {}
	  end
       if  活动数据.降妖伏魔[id]==nil then
          活动数据.降妖伏魔[id] = 200
       else
         self.检查次数 = 活动数据.降妖伏魔[id]
        end
    else
	 if  活动数据.降妖伏魔 ==nil then
	  活动数据.降妖伏魔 = {}
	  end
      for n=1,#队伍数据[玩家数据[id].队伍].队员数据 do
        if 角色处理类:GetTaskID(玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]],"降妖伏魔")~=0 then
        self.检查通过=玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称..","..self.检查通过
        end
         if  活动数据.降妖伏魔[队伍数据[玩家数据[id].队伍].队员数据[n]]==nil then
           	活动数据.降妖伏魔[队伍数据[玩家数据[id].队伍].队员数据[n]] = 200
         else
           	self.检查次数 = 活动数据.降妖伏魔[队伍数据[玩家数据[id].队伍].队员数据[n]]
         end
      end
    end
    if self.检查通过~="" then
    广播队伍消息(id,7,"#Y/"..self.检查通过.."已经领取过此任务了")
	     return false			
    elseif self.检查次数 <1  then
    	    广播队伍消息(id,7,"#Y/队伍中有人降妖伏魔任务次数已经达到上限无法领取降妖伏魔任务")
	     return false			
    else
         self:添加降妖伏魔任务(id)
      end
    end
 end

function 任务控制类:添加降妖伏魔任务(id)----------------------------完成
 local 抓鬼地图={1501,1092,1142,1193,1173,1146,1140,1070,1226,1209,1040}
 local 临时id=tonumber(id.."2000"..os.time())
 local 抓鬼地图编号=抓鬼地图[math.random(#抓鬼地图)]
 local 临时坐标=  地图处理类:Randomloadtion(抓鬼地图编号)
 local 抓鬼造型={"蜃气妖","雾中仙","曼珠沙华","炎魔神"}
 local 临时名称= ""
 local 临时造型=抓鬼造型[math.random(#抓鬼造型)]
  if 临时造型 == "蜃气妖" then
  临时名称 = "巧智魔"
  elseif 临时造型 == "雾中仙" then
临时名称 = "怯弱妖"
  elseif 临时造型 == "曼珠沙华" then
临时名称 = "迷幻妖"
  elseif 临时造型 == "炎魔神" then
临时名称 = "梦魇魔"
end
 任务数据[临时id]={
 类型="降妖伏魔"
 ,id=id
 ,起始=os.time()
 ,结束=1200
 ,任务id=临时id
 ,地图编号=抓鬼地图编号
 ,地图名称=MapData[抓鬼地图编号].名称
 ,名称=临时名称
 ,造型=临时造型
 ,方向=math.random(0,3)
 ,坐标=临时坐标
 ,战斗=false
 ,数字id={}
 ,客户id={}
 }
 self.任务id组={}
  if 玩家数据[id].队伍==0 then
  self.任务id组[#self.任务id组+1]=id
  else
    for n=1,#队伍数据[玩家数据[id].队伍].队员数据 do
    self.任务id组[#self.任务id组+1]=队伍数据[玩家数据[id].队伍].队员数据[n]
    end
  end
  for n=1,#self.任务id组 do
   self.任务临时id1=角色处理类:生成任务id(玩家数据[self.任务id组[n]])
   玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1]=临时id
   任务数据[临时id].数字id[#任务数据[临时id].数字id+1]=玩家数据[self.任务id组[n]].id
   任务数据[临时id].客户id[#任务数据[临时id].客户id+1]=self.任务id组[n]
   活动数据.降妖伏魔[self.任务id组[n]]=活动数据.降妖伏魔[self.任务id组[n]]-1
    发送数据( 玩家数据[self.任务id组[n]].连接id,9,"#xt/#Y/你今日还可完成#R/".. 活动数据.降妖伏魔[self.任务id组[n]].."#Y/次降妖伏魔任务")
    self:刷新追踪任务信息(self.任务id组[n])
  end
  地图处理类:添加单位(任务数据[临时id])
  发送数据(玩家数据[id].连接id,20,{"道士","鬼谷道人",[[ #W/近日有#Y/]]..任务数据[临时id].名称.."#W/正在#Y/"..任务数据[临时id].地图名称.."（"..math.floor(任务数据[临时id].坐标.x)..","..math.floor(任务数据[临时id].坐标.y)..")#W/处作恶，请立即前往降服。"})

 end
function 任务控制类:完成降妖伏魔任务(id组,任务id)-------------------
  for n=1,#id组 do
    if 玩家数据[id组[n]]~=nil then
	  	  if  活动数据.降妖伏魔 ==nil then
	  活动数据.降妖伏魔 = {}
	  end
        角色处理类:取消任务(玩家数据[id组[n]],任务id)
        self.抓鬼奖励参数=1
        self.抓鬼奖励等级=玩家数据[id组[n]].角色.等级
        self.等级误差=1
         self.玩家名称 = 玩家数据[id组[n]].角色.名称
        self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*5*self.抓鬼奖励参数*self.等级误差)
        self.抓鬼奖励银子=math.floor((self.抓鬼奖励等级*self.抓鬼奖励等级+math.random(2000,2500))*self.抓鬼奖励参数*3)
        角色处理类:添加经验(玩家数据[id组[n]],self.抓鬼奖励经验,"降妖伏魔")
        角色处理类:添加银子(玩家数据[id组[n]],self.抓鬼奖励银子,"降妖伏魔")
        角色处理类:添加活跃度(玩家数据[id组[n]],1)
        角色处理类:添加仙玉(玩家数据[id组[n]],1,"降妖伏魔")
        角色处理类:添加储备(玩家数据[id组[n]],math.floor(self.抓鬼奖励银子*3),"降妖伏魔")
        if 玩家数据[id组[n]].召唤兽.数据.参战~=0 then
        self.抓鬼奖励等级=玩家数据[id组[n]].召唤兽.数据[玩家数据[id组[n]].召唤兽.数据.参战].等级
        self.抓鬼奖励经验 = math.floor(self.抓鬼奖励等级 * self.抓鬼奖励等级 * 10 * self.抓鬼奖励参数)
        玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战,2)
        end      
				  if 玩家数据[id组[n]].角色.降妖伏魔 == nil then
		  玩家数据[id组[n]].角色.降妖伏魔 = 0
		  end
		   玩家数据[id组[n]].角色.降妖伏魔 =  玩家数据[id组[n]].角色.降妖伏魔 + 1
		   if 玩家数据[id组[n]].角色.降妖伏魔 == 10 then
		   if 玩家数据[id组[n]].队长 then
		   道具处理类:给予道具(id组[n],"镇妖拘魂铃",1)
		   else
		   if math.random(100) < 10 then
		   道具处理类:给予道具(id组[n],"镇妖拘魂铃",1)
		   end
		   end
		   end
						if 玩家数据[id组[n]].成就系统.降妖伏魔 ~= nil then
			玩家数据[id组[n]].成就系统.降妖伏魔.次数 = 玩家数据[id组[n]].成就系统.降妖伏魔.次数 + 1
		else
		玩家数据[id组[n]].成就系统.降妖伏魔 = {次数=0,奖励=0,等级=0}
		end
          local 随机奖励 = math.random(1000)
            if 随机奖励<= 5 then
          道具处理类:给予道具(id组[n],"金刚石",1)
            广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G金刚石#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
            elseif 随机奖励<= 10 then
          道具处理类:给予道具(id组[n],"定魂珠",1)
            广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G定魂珠#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
           elseif 随机奖励<= 50 then
          道具处理类:给予道具(id组[n],"避水珠",1)
                      广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G避水珠#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
           elseif 随机奖励<= 80 then
          道具处理类:给予道具(id组[n],"龙鳞",1)
                      广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G龙鳞#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
            elseif 随机奖励<= 100 then
          道具处理类:给予道具(id组[n],"夜光珠",1)
            广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G夜光珠#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
           elseif 随机奖励<= 200 then
          道具处理类:给予道具(id组[n],"金银宝盒",1)
        广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G金银宝盒#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
           elseif 随机奖励<= 250 then
          道具处理类:给予道具(id组[n],"超级金柳露",1)
               广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G超级金柳露#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
             elseif 随机奖励<= 300 then
          道具处理类:给予道具(id组[n],"魔兽要诀",1)
          广播消息("#xt/".."#S/(降妖伏魔)#Y封印千年的妖魔被收服了，一阵烟消云散过后，留下了#G魔兽要诀#Y给#G/".. self.玩家名称.. "#Y/少侠".."#"..math.random(110))
             elseif 随机奖励<= 310 then
          道具处理类:给予道具(id组[n],"镇妖拘魂铃",1)
            end
      end
    end
 地图处理类:移除单位(任务数据[任务id].地图编号,任务id)
 任务数据[任务id]=nil

 end